package cn.starlightsoftware.sherly.controller.admin.permission.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import cn.starlightsoftware.sherly.enums.BooleanEnum;
import cn.starlightsoftware.sherly.enums.PermissionTypeEnum;
import cn.starlightsoftware.sherly.enums.UsableEnum;

import java.util.List;

/**
 * @author 谷子毅
 */
@Data
public class PermissionRespVO {

    @Schema(description = "权限编号")
    private String permissionId;

    @Schema(description = "父权限编号")
    private String parentId;

    @Schema(description = "权限名称")
    private String permissionName;

    @Schema(description = "权限代码")
    private String permissionCode;

    @Schema(description = "图标")
    private String icon;

    @Schema(description = "组件地址")
    private String componentPath;

    @Schema(description = "组件名称")
    private String componentName;

    @Schema(description = "路由地址")
    private String path;

    @Schema(description = "排序")
    private Integer sort;

    @Schema(description = "权限类型")
    private PermissionTypeEnum permissionType;

    @Schema(description = "可用性")
    private UsableEnum usable;

    @Schema(description = "显示状态")
    private BooleanEnum visible;

    @Schema(description = "总是显示")
    private BooleanEnum alwaysShow;

    @Schema(description = "缓存状态")
    private BooleanEnum keepAlive;

    @Schema(description = "子权限")
    private List<PermissionRespVO> children;
}
